package com.tanhua.dubbo.api;

import com.tanhua.model.dto.LikeCount;
import com.tanhua.model.mongo.CommonLikeUser;
import com.tanhua.model.vo.PageResult;

public interface UserLikeApi {

    /**
     * 保存或者更新
     * 左滑右滑(喜欢/不喜欢)
     */
    Boolean saveOrUpdate(Long userId, Long likeUserId, boolean isLike);

    //相互喜欢,喜欢,粉丝统计
    LikeCount counts(Long userId);

    /**
     * 分页查询好友列表（相互喜欢列表）
     *
     * @param userId   用户id
     * @param page     页码
     * @param pagesize 查询几条
     * @return 分页结果
     */
    PageResult<CommonLikeUser> queryFriendsList(Long userId, Integer page, Integer pagesize);

    /**
     * 分页查询喜欢的用户列表
     *
     * @param userId   用户id
     * @param page     页码
     * @param pagesize 查询几条
     * @return 分页结果
     */
    PageResult<CommonLikeUser> queryLikeList(Long userId, Integer page, Integer pagesize);

    /**
     * 分页查询粉丝列表
     *
     * @param userId   用户id
     * @param page     页码
     * @param pagesize 查询几条
     * @return 分页结果
     */
    PageResult<CommonLikeUser> queryFansList(Long userId, Integer page, Integer pagesize);

    /**
     * 分页查询来访者
     *
     * @param userId   用户id（被访问者）
     * @param page     页码
     * @param pagesize 查询几条
     * @return 分页结果
     */
    PageResult<CommonLikeUser> findVisitorList(Long userId, Integer page, Integer pagesize);

    /**
     * 删除用户对当前用户的喜欢
     *
     * @param userId     用户id
     * @param likeUserId 将要取消喜欢的用户id
     */
    void delete(Long userId, Long likeUserId);


}